openwhisk.home={{ openwhisk_home }}

python.27=python
nginx.conf.dir={{ nginx.confdir }}
testing.auth={{ openwhisk_home }}/ansible/files/auth.guest
vcap.services.file=

whisk.logs.dir={{ whisk_logs_dir }}
whisk.coverage.logs.dir={{ coverage_logs_dir | default('') }}
environment.type={{ environmentInformation.type }}
whisk.ssl.client.verification={{ nginx.ssl.verify_client }}
whisk.ssl.cert={{ nginx.ssl.path }}/{{ nginx.ssl.cert }}
whisk.ssl.key={{ nginx.ssl.path }}/{{ nginx.ssl.key }}
whisk.ssl.challenge=openwhisk

{#
 # the whisk.api.host.name must be a name that can resolve form inside an action container,
 # or an ip address reachable from inside the action container.
 #
 # the whisk.api.localhost.name must be a name that resolves from the client; it is either the
 # whisk_api_host_name if it is defined, an environment specific localhost name, or the default
 # localhost name.
 #
 # the whisk.api.vanity.subdomain.parts indicates how many conforming parts the router is configured to
 # match in the subdomain, which it rewrites into a namespace; each part must match ([a-zA-Z0-9]+)
 # with parts separated by a single dash.
 #}
whisk.api.host.proto={{ whisk_api_host_proto | default('https') }}
whisk.api.host.port={{ whisk_api_host_port | default('443') }}
whisk.api.host.name={{ whisk_api_host_name | default(groups['edge'] | first) }}
whisk.api.localhost.name={{ whisk_api_localhost_name | default(whisk_api_host_name) | default(whisk_api_localhost_name_default) }}
whisk.api.vanity.subdomain.parts=1

whisk.action.concurrency={{ runtimes_enable_concurrency | default(false) }}
whisk.feature.requireApiKeyAnnotation={{ whisk.feature_flags.require_api_key_annotation | default(true) }}

runtimes.manifest={{ runtimesManifest | to_json }}

limits.actions.invokes.perMinute={{ limits.invocationsPerMinute }}
limits.actions.invokes.concurrent={{ limits.concurrentInvocations }}
limits.triggers.fires.perMinute={{ limits.firesPerMinute }}
limits.actions.sequence.maxLength={{ limits.sequenceMaxLength }}

edge.host={{ groups["edge"]|first }}
kafka.hosts={{ kafka_connect_string }}
redis.host={{ groups["redis"]|default([""])|first }}
router.host={{ groups["edge"]|first }}
zookeeper.hosts={{ zookeeper_connect_string }}
invoker.hosts={{ groups["invokers"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}

edge.host.apiport=443
kafkaras.host.port={{ kafka.ras.port }}
redis.host.port={{ redis.port }}
invoker.hosts.basePort={{ invoker.port }}

controller.hosts={{ groups["controllers"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}
controller.host.basePort={{ controller.basePort }}
controller.instances={{ controller.instances }}
controller.protocol={{ controller.protocol }}

invoker.container.network=bridge
invoker.container.policy={{ invoker_container_policy_name | default()}}
invoker.container.dns={{ invoker_container_network_dns_servers | default()}}
invoker.useRunc={{ invoker.useRunc }}

main.docker.endpoint={{ hostvars[groups["controllers"]|first].ansible_host }}:{{ docker.port }}

docker.registry={{ docker_registry }}
docker.image.prefix={{ docker.image.prefix }}
#use.docker.registry=false
docker.port={{ docker.port }}
docker.timezone.mount=
docker.image.tag={{ docker.image.tag }}
docker.tls.cmd=
docker.addHost.cmd=
docker.dns.cmd={{ docker_dns }}
docker.restart.opts={{ docker.restart.policy }}

db.provider={{ db.provider }}
db.protocol={{ db.protocol }}
db.host={{ db.host }}
db.port={{ db.port }}
db.username={{ db.credentials.admin.user }}
db.password={{ db.credentials.admin.pass }}
db.prefix={{ db_prefix }}
db.whisk.auths={{ db.whisk.auth }}
db.whisk.actions={{ db.whisk.actions }}
db.whisk.activations={{ db.whisk.activations }}
db.hostsList={{ groups["db"] | map('extract', hostvars, 'ansible_host') | list | join(",") }}
db.instances={{ db.instances }}

apigw.auth.user={{apigw_auth_user}}
apigw.auth.pwd={{apigw_auth_pwd}}
apigw.host.v2={{apigw_host_v2}}
